package com.bjesc_b2c.app.appraiset;

import android.app.Application;
import android.database.sqlite.SQLiteDatabase;

import com.bjesc_b2c.app.appraiset.db.dao.DaoMaster;
import com.bjesc_b2c.app.appraiset.db.dao.DaoSession;
import com.bjesc_b2c.app.appraiset.utils.GralleryFinalConfig;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.orhanobut.logger.Logger;
import com.tencent.bugly.crashreport.CrashReport;

import cn.finalteam.galleryfinal.GalleryFinal;
/**
 * Created by Jason Chen on 2017/2/20.
 */

public class AppraiserApplication extends Application {
    private static String TAG = "yidong";
    public  final static String ENDPOINT ="http://oss-cn-shenzhen.aliyuncs.com";
    public static AppraiserApplication application;
    public static int CAR_ID;
    private DaoMaster.DevOpenHelper mHelper;
    private SQLiteDatabase db;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    @Override
    public void onCreate() {
        super.onCreate();
        application = this;
        Fresco.initialize(this);
        setDatabase();
        GalleryFinal.init(GralleryFinalConfig.getCoreConfig(this));
        Logger.init(TAG);
        CrashReport.initCrashReport(getApplicationContext());// 初始化  bugly

    }

    /**
     * 设置greenDao
     */
    private void setDatabase() {
        // 通过 DaoMaster 的内部类 DevOpenHelper，你可以得到一个便利的 SQLiteOpenHelper 对象。
        // 可能你已经注意到了，你并不需要去编写「CREATE TABLE」这样的 SQL 语句，因为 greenDAO 已经帮你做了。
        // 注意：默认的 DaoMaster.DevOpenHelper 会在数据库升级时，删除所有的表，意味着这将导致数据的丢失。
        // 所以，在正式的项目中，你还应该做一层封装，来实现数据库的安全升级。
        mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
        db = mHelper.getWritableDatabase();
        // 注意：该数据库连接属于 DaoMaster，所以多个 Session 指的是相同的数据库连接。
        mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }
    public DaoSession getDaoSession() {
        return mDaoSession;
    }
    public SQLiteDatabase getDb() {
        return db;
    }
//    @Override
//    protected void attachBaseContext(Context base) {
//        super.attachBaseContext(base);
//        MultiDex.install(this);
//    }
    public static AppraiserApplication getInstances(){
        return application;
    }
}
